import { FormProps, FormSchema } from '/@/components/Form';
import { BasicColumn } from '/@/components/Table';
import { formatToDate } from '/@/utils/dateUtil';

// 搜索Form展示信息
// 姓名 name
// 性别 sex
// 出生日期 dt
// 年龄 age

// 表格展示信息
// 姓名 name
// 性别 sex
// 出生日期 dt
// 年龄 age
// 电话 tel
// 住址 address

type sexOptionType = [{ label: string; value: string }, { label: string; value: string }];

const sexOption: sexOptionType = [
  { value: '0', label: '男' },
  { value: '1', label: '女' },
];

// 配置表格SearchForm字段
export const formConfig: Partial<FormProps> = {
  labelWidth: 120,
  actionColOptions: {
    span: 25,
  },
  //自动展开行
  autoAdvancedLine: 1,
  showAdvancedButton: true,

  baseColProps: {
    span: 8,
  },
  schemas: [
    {
      field: 'name',
      label: '姓名',
      component: 'Input',
    },
    {
      field: 'sex',
      label: '性别',
      component: 'Select',
      componentProps: {
        options: sexOption,
      },
    },
    {
      field: 'dt',
      label: '出生日期',
      component: 'DatePicker',
      componentProps: {
        style: {
          width: '100%',
        },
        valueFormat: 'YYYYMMDD',
      },
    },
    {
      field: 'age',
      label: '年龄',
      component: 'InputNumber',
      componentProps: {
        style: {
          width: '100%',
        },
      },
    },
  ],
};

// 配置表格表头字段
export const columns: BasicColumn[] = [
  {
    title: '姓名',
    width: 200,
    dataIndex: 'name',
  },
  {
    title: '性别',
    width: 200,
    dataIndex: 'sex',
  },
  {
    title: '出生日期',
    width: 200,
    dataIndex: 'dt',
    customRender: function (text) {
      return formatToDate(text.text);
    },
  },
  {
    title: '年龄',
    width: 200,
    dataIndex: 'age',
  },
  {
    title: '电话',
    width: 200,
    dataIndex: 'tel',
  },
  {
    title: '住址',
    width: 200,
    dataIndex: 'address',
  },
];

// 自定义表单数据，我这里是写死的数据
export function initData() {
  return [
    {
      name: '张三',
      sex: '男',
      dt: '20200701',
      age: '22',
      tel: '13789890909',
      address: '北京市北京小区',
    },
    {
      name: '李四',
      sex: '女',
      dt: '20230507',
      age: '27',
      tel: '15477778888',
      address: '大连市大连小区',
    },
    {
      name: '王五',
      sex: '男',
      dt: '20221001',
      age: '26',
      tel: '15477778888',
      address: '大连市大连小区',
    },
    {
      name: '小明',
      sex: '男',
      dt: '20220701',
      age: '25',
      tel: '15477778888',
      address: '大连市大连小区',
    },
    {
      name: '小红',
      sex: '女',
      dt: '20180808',
      age: '28',
      tel: '15477778888',
      address: '大连市大连小区',
    },
  ];
}
